package indi.kider.server.bill.service;

import indi.kider.common.model.bill.*;
import indi.kider.common.model.meter.CommandResponse;
import pers.vankid.common.model.base.CommonResponse;

import java.util.List;

/**
 * Created by shixj on 2018/5/28.
 */
public interface MeterService {
    /**
     * 单个查询表具
     * @param meter
     * @return
     * @throws Exception
     */
    Meter selectOne(Meter meter)throws Exception;

    /**
     * 发送命令
     * @param meterControl
     * @return
     * @throws Exception
     */
    CommonResponse<CommandResponse> meterControl(MeterControl meterControl)throws Exception;

    /**
     * 修改名称
     * @param meterNameChange
     */
    void update(MeterNameChange meterNameChange);

    /**
     * 查询表具列表
     * @param r
     * @return
     */
    List<RentMeter> getRentMeterList(RentMeter r);

    /**
     * 查询表具结算记录
     * @param r
     * @return
     */
    List<MeterRecord> getMeterRecordList(RentMeter r);


    /**
     * 绑定表具
     * @param meter
     */
    void bindHouseMeter(Meter meter) throws Exception;
    /**
     * 解除绑定表具
     * @param meterId
     * @param housesId
     */
    void cleanHouseMeter( Long meterId,Long housesId) throws Exception;

}
